حذف پروسیجر (Procedure) از مدل داده ای در Entity Framework
درون دیتابیس Sql Server چندین Procedure مختلف دارم که از اونها در مدل داده ای در انتیتی فریم ورک استفاده می کنم. این نکته رو هم بگم که از انتیتی فریم ورک Db First استفاده می کنم.
حالا بعضی از این پروسیجرها رو نیاز ندارم یا اینکه تغییرات اساسی داشتن و یک Procedure جدید در Sql Server برای اونها اضافه کردم. SP های اضافی رو به راحتی میتونم توی Sql Server حذف کنم ولی چجوری میشه این پروسیجرها رو از مدل داده ای هم حذف کرد به نحوی که مدل داده ای به درستی کار کنه و دچار مشکل نشه؟
سلام. دوست عزیز اگر این Procedure ها رو حذف هم نکنید هیچ مشکلی پیش نمیاد چون فضای زیادی رو توی پروژه اشغال نمیکنه. ولی برای حدف میتونی در قسمت Solution پروژه در کادر جست و جو نام sp خود رو جست و جو و پیدا کنید و سپس حذفش کنید. اگه از این طریق هم موفق نشدید کلا مدلتون رو حذف و دوباره تعریف کنید.
آشنایی با کلاس DbContext
در تکنولوژی انتیتی فریم ورک چه Code First و چه مدل Database First کلاسی به نام DbContext وجود دارد که نماینده دیتابیس در نرم افزار می باشد. (البته دقت کنید که ممکن است این کلاس نام های مختلفی داشته باشد ولی در اکثر مواقع نام آن DbContext است و این کلاس از کلاس DbContext مشتق می شود.)
public partial class Accounting_systemEntities : DbContext
{
public Accounting_systemEntities()
: base("Accounting_Entities")
{
}
}
همانطور که در مثال بالا مشاهده می کنید کلاسی به نام Accounting_systemEntities داریم که از کلاس DbContext مشتق می شود. پس به عبارتی این کلاس همان کلاس اصلی دیتابیس یا نماینده دیتابیس در پروژه ما می باشد.
کلاس DbContext شامل چه کدهایی می باشد
حالا باید ببینیم کلاس DbContext شامل چه اجزایی می شود. همانطور که گفتیم این کلاس نماینده دیتابیس می باشد. بنابراین تمامی اجزای دیتابیس شامل جداول، ویوها، Stored Procedure ها، توابع و ... را درون خود دارد. نکته مهمی که باید گفته شود اینکه نرم افزار یا وب سایت ما دیتابیس را از طریق این کلاس شناسایی می کند و در صورتی که اطلاعات این کلاس کم و زیاد شود باعث تغییر در نرم افزار خواهد شد.
کار با کلاس DbContext در مدل DB First
به تصویر زیر دقت کنید
در مدل DB first و در مدل داده ای کلاسی به نام AutomationModel.Context.cs وجود دارد. (دقت کنید بخش اول این نام متناسب با پروژه شما ممکن است متفاوت باشد.) این همان کلاس Dbcontext پروژه شما می باشد. اگر این کلاس را باز کنید مشاهده خواهید کرد که تمامی جداول، ویوها، Sp ها و ... در این کلاس معرفی شده اند. دقت کنید که جداول دیتابیس فقط در این کلاس معرفی می شود و تعریف آنها در کلاسهای جداگانه می باشد.
حالا اگر شما قصد دارید هر SP را از پروژه خود حذف کنید کافیست نام آن Sp را در این کلاس پیدا کنید و آن را حذف نمایید.
مثلا در تصویر بالا یک Sp با نام Sp_Update_ExitDate در این کلاس پیدا کرده ایم . برای حذف میتوان کل کدهای این Sp را حذف کرد. در صورتی که کدهای این Sp حذف شود مشاهده خواهید کرد که در کدهای شما نیز دیگر این Sp وجود نخواهد داشت.
به این ترتیب به راحتی قادر خواهید بود که SP های اضافی را در پروژه خود در مدل DbFirst حذف کنید.
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- نمایش صفحه در پنجره جدید با کلیک روی لینک (تگ a) در Asp
- افزودن مقادیر به صورت دستی به List دریافت شده از ریپازیتوری
- کار با CkEditor با قابلیت آپلود عکس
- خطا در ایجاد migration در Asp.net core
- مشکل تاریخ شمسی در سی شارپ
- تفاوت های Asp.net core و Asp.net mvc چیه؟
- دلیل اسپم شدن ایمیل های ارسالی از سرور
- ارسال ایمیل در Asp.net core
- نمایش گزارش stimulsoft روی کلاینت
- تفاوت های سی شارپ 8 با نسخه های قبلی چیه؟
- انتخاب چند سطر دلخواه توسط چک باکس در DataGrid و محاسبه جمع سطرهای انتخاب شده
- نمایش نوتیفکیشن در سی شارپ